4051bcecFeq4DE70p4zGO5setf47CA xen/common/physdev.c
4006e659i9j-doVxY7DKOGU4XVin1Q xen/common/rbtree.c
3ddb79bdHqdQpATqC0rmUZNbsb6L6A xen/common/resource.c
+40589968dD2D1aejwSOvrROg7fOvGQ xen/common/sched_bvt.c
+40589968be_t_n0-w6ggceW7h-sx0w xen/common/sched_rrobin.c
3e397e6619PgAfBbw2XFbXkewvUWgw xen/common/schedule.c
+ 405b8599xI_PoEr3zZoJ2on-jdn7iw xen/common/shadow.c
3ddb79bdB9RNMnkQnUyZ5C9hhMSQQw xen/common/slab.c
3ddb79bd0gVQYmL2zvuJnldvD0AGxQ xen/common/softirq.c
3e7f358awXBC3Vw-wFRwPw18qL1khg xen/common/string.c
3ddb79c4R4iVwqIIeychVQYmIH4FUg xen/include/scsi/scsi_ioctl.h
3ddb79c4yw_mfd4Uikn3v_IOPRpa1Q xen/include/scsi/scsicam.h
3ddb79c4HKPMLvDBP9LxzPi_szVxGA xen/include/scsi/sg.h
-3e397e66m2tO3s-J8Jnr7Ws_tGoPTg xen/include/xeno/ac_timer.h
-3ddb79c0nTsjSpVK4ZVTI9WwN24xtQ xen/include/xeno/blk.h
-3ddb79c0dVhTHLsv6CPTf4baKix4mA xen/include/xeno/blkdev.h
-3ddb79c18ePBgitnOs7GiOCFilODVw xen/include/xeno/blkpg.h
-3ddb79c1oOjpQbp68MW7yiUpoi-S-w xen/include/xeno/brlock.h
-3ddb79c1x7Ie3kifu7dQRx8y7HVyvA xen/include/xeno/byteorder/big_endian.h
-3ddb79c1qFXOEX1eD0yXJ_gsGkUt8w xen/include/xeno/byteorder/generic.h
-3ddb79c1VbwFALNpgx6uC_iZKFHD-A xen/include/xeno/byteorder/little_endian.h
-3ddb79c1VvNRMM35bpdZMekirCXP-A xen/include/xeno/byteorder/pdp_endian.h
-3ddb79c116WbJV8bwGZXFFJy_GNNvw xen/include/xeno/byteorder/swab.h
-3ddb79c1pwmlw8VXW8aaSKAVGVmjDA xen/include/xeno/byteorder/swabb.h
-3ddb79c0c0cX_DZE209-Bb-Rx1v-Aw xen/include/xeno/cache.h
-3e9c248aEG_nCngztiFmv5CfayNkcA xen/include/xeno/cdrom.h
-3f840f12CkbYSlwMrY2S11Mpyxg7Nw xen/include/xeno/compiler.h
-3ddb79c259jh8hE7vre_8NuE7nwNSA xen/include/xeno/config.h
-3eb165e0eawr3R-p2ZQtSdLWtLRN_A xen/include/xeno/console.h
-3f0c428eIwGr7n9fj4FkBdX2YvA_Rw xen/include/xeno/crc32.h
-3ddb79c1V44RD26YqCUm-kqIupM37A xen/include/xeno/ctype.h
-3ddb79c05DdHQ0UxX_jKsXdR4QlMCA xen/include/xeno/delay.h
-3ddb79c1uaWQZj551j1O0B5z8AnHOg xen/include/xeno/elevator.h
-3ddb79c0HIghfBF8zFUdmXhOU8i6hA xen/include/xeno/errno.h
-3ddb79c0rMjudDKkJku_mkm0J-BZgw xen/include/xeno/etherdevice.h
-3ddb79c0T3X07lFnM9OSE-W5bqIDSQ xen/include/xeno/ethtool.h
-3ddb79c1W0lQca8gRV7sN6j3iY4Luw xen/include/xeno/event.h
-3ddb79c1J4I_AjNflZL-1c1jOIlSyg xen/include/xeno/genhd.h
-3ddb79c1i-chIoeniqgYwMM3EgaR5w xen/include/xeno/hdreg.h
-3ddb79c12GuUuaxBKiMuwf-Qvuwpng xen/include/xeno/hdsmart.h
-3ddb79c0MM575N4YvMSiw9EqKH4JDA xen/include/xeno/ide.h
-3ddb79c1yHLp08JhgPxIMcZ8DwN9hg xen/include/xeno/if.h
-3ddb79c1RCWOkWPQRzbYVTX_e-E7CA xen/include/xeno/if_ether.h
-3ddb79c2IYah7z7hkzPyOiG8szKkyw xen/include/xeno/if_packet.h
-3e4540ccefnCkeqtD_dW_CBOjXUSYw xen/include/xeno/if_vlan.h
-3df0af1c-QrOEqpPHq4uL3NZzCeJCg xen/include/xeno/in.h
-3ddb79c0GurNF9tDWqQbAwJFH8ugfA xen/include/xeno/init.h
-3ddb79c1Vi5VleJAOKHAlY0G2zAsgw xen/include/xeno/interrupt.h
-3ddb79c2J6EnruiygRhBCgftzMzTeQ xen/include/xeno/ioctl.h
-3ddb79c1nzaWu8NoF4xCCMSFJR4MlA xen/include/xeno/ioport.h
-3ddb79c2qAxCOABlkKtD8Txohe-qEw xen/include/xeno/irq.h
-3ddb79c2b3qe-6Ann09FqZBF4IrJaQ xen/include/xeno/irq_cpustat.h
-3ddb79c11w_O7z7YZJnzuDSxaK5LlA xen/include/xeno/kdev_t.h
-3e4540ccPHqIIv2pvnQ1gV8LUnoHIg xen/include/xeno/kernel.h
-3e4cd9d8elj_7EgAs9Of56RQ2Yq_4g xen/include/xeno/keyhandler.h
-3ddb79c1NfYlOrWNqgZkj9EwtFfJow xen/include/xeno/lib.h
-3ddb79c18Ajy7micDGQQfJ0zWgEHtA xen/include/xeno/list.h
-3ddb79c0_s2_wgV0cA6tztEaeyy1NA xen/include/xeno/major.h
-3ddb79c1fsWuKI2sGlW5bqoG2lPVNA xen/include/xeno/mii.h
-3ddb79c1gs2VbLbQlw0dcDUXYIepDA xen/include/xeno/mm.h
-3ddb79c13p9iHn1XAp0IS1qvj4yDsg xen/include/xeno/module.h
-3ddb79c1ieLZfGSFwfvvSQ2NK1BMSg xen/include/xeno/multiboot.h
-3ec92e46saEJq7v1vgEJD3HZSufSBg xen/include/xeno/net_headers.h
-3ddb79c0CLfAlJLg1ohdPD-Jjn-jxg xen/include/xeno/netdevice.h
-3e4540ccaugeWGdOuphJKj6WFw1jkw xen/include/xeno/notifier.h
-3ddb79c2Fg44_PBPVxHSC0gTOMq4Ow xen/include/xeno/pci.h
-3ddb79c0MOVXq8qZDQRGb6z64_xAwg xen/include/xeno/pci_ids.h
-3e54c38dlSCVdyVM4PKcrSfzLLxWUQ xen/include/xeno/perfc.h
-3e54c38de9SUSYSAwxDf_DwkpAnQFA xen/include/xeno/perfc_defn.h
-3ddb79c04nQVR3EYM5L4zxDV_MCo1g xen/include/xeno/prefetch.h
-4006e65fWMwLqcocgik6wbF0Eeh0Og xen/include/xeno/rbtree.h
-3e4540ccU1sgCx8seIMGlahmMfv7yQ xen/include/xeno/reboot.h
-3ddb79c0LzqqS0LhAQ50ekgj4oGl7Q xen/include/xeno/sched.h
-403a06a7H0hpHcKpAiDe5BPnaXWTlA xen/include/xeno/serial.h
+3e397e66m2tO3s-J8Jnr7Ws_tGoPTg xen/include/xen/ac_timer.h
+3ddb79c0nTsjSpVK4ZVTI9WwN24xtQ xen/include/xen/blk.h
+3ddb79c0dVhTHLsv6CPTf4baKix4mA xen/include/xen/blkdev.h
+3ddb79c18ePBgitnOs7GiOCFilODVw xen/include/xen/blkpg.h
+3ddb79c1oOjpQbp68MW7yiUpoi-S-w xen/include/xen/brlock.h
+3ddb79c1x7Ie3kifu7dQRx8y7HVyvA xen/include/xen/byteorder/big_endian.h
+3ddb79c1qFXOEX1eD0yXJ_gsGkUt8w xen/include/xen/byteorder/generic.h
+3ddb79c1VbwFALNpgx6uC_iZKFHD-A xen/include/xen/byteorder/little_endian.h
+3ddb79c1VvNRMM35bpdZMekirCXP-A xen/include/xen/byteorder/pdp_endian.h
+3ddb79c116WbJV8bwGZXFFJy_GNNvw xen/include/xen/byteorder/swab.h
+3ddb79c1pwmlw8VXW8aaSKAVGVmjDA xen/include/xen/byteorder/swabb.h
+3ddb79c0c0cX_DZE209-Bb-Rx1v-Aw xen/include/xen/cache.h
+3e9c248aEG_nCngztiFmv5CfayNkcA xen/include/xen/cdrom.h
+3f840f12CkbYSlwMrY2S11Mpyxg7Nw xen/include/xen/compiler.h
+3ddb79c259jh8hE7vre_8NuE7nwNSA xen/include/xen/config.h
+3eb165e0eawr3R-p2ZQtSdLWtLRN_A xen/include/xen/console.h
+3f0c428eIwGr7n9fj4FkBdX2YvA_Rw xen/include/xen/crc32.h
+3ddb79c1V44RD26YqCUm-kqIupM37A xen/include/xen/ctype.h
+3ddb79c05DdHQ0UxX_jKsXdR4QlMCA xen/include/xen/delay.h
+3ddb79c1uaWQZj551j1O0B5z8AnHOg xen/include/xen/elevator.h
+3ddb79c0HIghfBF8zFUdmXhOU8i6hA xen/include/xen/errno.h
+3ddb79c0rMjudDKkJku_mkm0J-BZgw xen/include/xen/etherdevice.h
+3ddb79c0T3X07lFnM9OSE-W5bqIDSQ xen/include/xen/ethtool.h
+3ddb79c1W0lQca8gRV7sN6j3iY4Luw xen/include/xen/event.h
+3ddb79c1J4I_AjNflZL-1c1jOIlSyg xen/include/xen/genhd.h
+3ddb79c1i-chIoeniqgYwMM3EgaR5w xen/include/xen/hdreg.h
+3ddb79c12GuUuaxBKiMuwf-Qvuwpng xen/include/xen/hdsmart.h
+3ddb79c0MM575N4YvMSiw9EqKH4JDA xen/include/xen/ide.h
+3ddb79c1yHLp08JhgPxIMcZ8DwN9hg xen/include/xen/if.h
+3ddb79c1RCWOkWPQRzbYVTX_e-E7CA xen/include/xen/if_ether.h
+3ddb79c2IYah7z7hkzPyOiG8szKkyw xen/include/xen/if_packet.h
+3e4540ccefnCkeqtD_dW_CBOjXUSYw xen/include/xen/if_vlan.h
+3df0af1c-QrOEqpPHq4uL3NZzCeJCg xen/include/xen/in.h
+3ddb79c0GurNF9tDWqQbAwJFH8ugfA xen/include/xen/init.h
+3ddb79c1Vi5VleJAOKHAlY0G2zAsgw xen/include/xen/interrupt.h
+3ddb79c2J6EnruiygRhBCgftzMzTeQ xen/include/xen/ioctl.h
+3ddb79c1nzaWu8NoF4xCCMSFJR4MlA xen/include/xen/ioport.h
+3ddb79c2qAxCOABlkKtD8Txohe-qEw xen/include/xen/irq.h
+3ddb79c2b3qe-6Ann09FqZBF4IrJaQ xen/include/xen/irq_cpustat.h
+3ddb79c11w_O7z7YZJnzuDSxaK5LlA xen/include/xen/kdev_t.h
+3e4540ccPHqIIv2pvnQ1gV8LUnoHIg xen/include/xen/kernel.h
+3e4cd9d8elj_7EgAs9Of56RQ2Yq_4g xen/include/xen/keyhandler.h
+3ddb79c1NfYlOrWNqgZkj9EwtFfJow xen/include/xen/lib.h
+3ddb79c18Ajy7micDGQQfJ0zWgEHtA xen/include/xen/list.h
+3ddb79c0_s2_wgV0cA6tztEaeyy1NA xen/include/xen/major.h
+3ddb79c1fsWuKI2sGlW5bqoG2lPVNA xen/include/xen/mii.h
+3ddb79c1gs2VbLbQlw0dcDUXYIepDA xen/include/xen/mm.h
+3ddb79c13p9iHn1XAp0IS1qvj4yDsg xen/include/xen/module.h
+3ddb79c1ieLZfGSFwfvvSQ2NK1BMSg xen/include/xen/multiboot.h
+3ec92e46saEJq7v1vgEJD3HZSufSBg xen/include/xen/net_headers.h
+3ddb79c0CLfAlJLg1ohdPD-Jjn-jxg xen/include/xen/netdevice.h
+3e4540ccaugeWGdOuphJKj6WFw1jkw xen/include/xen/notifier.h
+3ddb79c2Fg44_PBPVxHSC0gTOMq4Ow xen/include/xen/pci.h
+3ddb79c0MOVXq8qZDQRGb6z64_xAwg xen/include/xen/pci_ids.h
+3e54c38dlSCVdyVM4PKcrSfzLLxWUQ xen/include/xen/perfc.h
+3e54c38de9SUSYSAwxDf_DwkpAnQFA xen/include/xen/perfc_defn.h
+3ddb79c04nQVR3EYM5L4zxDV_MCo1g xen/include/xen/prefetch.h
+4006e65fWMwLqcocgik6wbF0Eeh0Og xen/include/xen/rbtree.h
+3e4540ccU1sgCx8seIMGlahmMfv7yQ xen/include/xen/reboot.h
+40589969nPq3DMzv24RDb5LXE9brHw xen/include/xen/sched-if.h
+3ddb79c0LzqqS0LhAQ50ekgj4oGl7Q xen/include/xen/sched.h
+403a06a7H0hpHcKpAiDe5BPnaXWTlA xen/include/xen/serial.h
+3ddb79c0VDeD-Oft5eNfMneTU3D1dQ xen/include/xen/skbuff.h
+3ddb79c14dXIhP7C2ahnoD08K90G_w xen/include/xen/slab.h
+3ddb79c09xbS-xxfKxuV3JETIhBzmg xen/include/xen/smp.h
+3ddb79c1-yIt89RT02wIPp2xDR8YjQ xen/include/xen/socket.h
+3ddb79c2V2P9F2xMCzDJ9vbUofSg_Q xen/include/xen/sockios.h
+3ddb79c2iIcESrDAB8samy_yAh6olQ xen/include/xen/spinlock.h
+3e7f358aMtFMUVvN_Zjg5qvEJIqEBA xen/include/xen/string.h
+3ddb79c0BnA20PbgmuMPSGIBljNRQw xen/include/xen/time.h
+3ddb79c2HFkXuRxi1CriJtSFmY6Ybw xen/include/xen/timer.h
+3ddb79c2_m8lT9jDKse_tePj7zcnNQ xen/include/xen/timex.h
+3ddb79c2e2C14HkndNEJlYwXaPrF5A xen/include/xen/tqueue.h
+403a3edbG9K5uZjuY19_LORbQGmFbA xen/include/xen/trace.h
+3ddb79c1-kVvF8cVa0k3ZHDdBMj01Q xen/include/xen/types.h
+3f055a3dwldYR102YcSuBaxIf9t3Jw xen/include/xen/vbd.h
+3e8827bdaqPeZAWGVOwswgY9bWSx4g xen/include/xen/version.h
+3ddb79c2Ae5KpzhC9LCYG7mP_Vi4Aw xen/include/xen/vif.h
+ 405b8599BsDsDwKEJLS0XipaiQW3TA xen/include/xeno/shadow.h
-3ddb79c0VDeD-Oft5eNfMneTU3D1dQ xen/include/xeno/skbuff.h
-3ddb79c14dXIhP7C2ahnoD08K90G_w xen/include/xeno/slab.h
-3ddb79c09xbS-xxfKxuV3JETIhBzmg xen/include/xeno/smp.h
-3ddb79c1-yIt89RT02wIPp2xDR8YjQ xen/include/xeno/socket.h
-3ddb79c2V2P9F2xMCzDJ9vbUofSg_Q xen/include/xeno/sockios.h
-3ddb79c2iIcESrDAB8samy_yAh6olQ xen/include/xeno/spinlock.h
-3e7f358aMtFMUVvN_Zjg5qvEJIqEBA xen/include/xeno/string.h
-3ddb79c0BnA20PbgmuMPSGIBljNRQw xen/include/xeno/time.h
-3ddb79c2HFkXuRxi1CriJtSFmY6Ybw xen/include/xeno/timer.h
-3ddb79c2_m8lT9jDKse_tePj7zcnNQ xen/include/xeno/timex.h
-3ddb79c2e2C14HkndNEJlYwXaPrF5A xen/include/xeno/tqueue.h
-403a3edbG9K5uZjuY19_LORbQGmFbA xen/include/xeno/trace.h
-3ddb79c1-kVvF8cVa0k3ZHDdBMj01Q xen/include/xeno/types.h
-3f055a3dwldYR102YcSuBaxIf9t3Jw xen/include/xeno/vbd.h
-3e8827bdaqPeZAWGVOwswgY9bWSx4g xen/include/xeno/version.h
-3ddb79c2Ae5KpzhC9LCYG7mP_Vi4Aw xen/include/xeno/vif.h
3ddb79c4YQCQ6r0xNLLu0jfbM7pVmA xen/net/Makefile
3ddb79c4AkfDkTCw0comx4L8wsUOMg xen/net/dev.c
3ddb79c4x1L_soh8b-r_1jQW_37Icw xen/net/dev_mcast.c
- BitKeeper/*/*
- PENDING/*
++*.a
+*.o
++*.pyc
+*.so
+*.so.*
- *.a
- *.pyc
+ BitKeeper/*/*
+ PENDING/*
++TAGS
+ URK
+extras/mini-os/h/hypervisor-ifs
+tools/*/build/lib*/*.py
tools/balloon/balloon
- tools/misc/xen_read_console
+ tools/control/.checkstyle
+ tools/control/.classpath
+ tools/control/.project
+ tools/control/build-cmdline/**
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Command.class
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/CommandDestroy.class
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/CommandHelp.class
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/CommandList.class
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/CommandNew.class
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/CommandStart.class
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/CommandStop.class
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Defaults$Handler.class
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Defaults.class
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Domain.class
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/InetAddressPattern.class
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Main.class
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Settings.class
+ tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/StringPattern.class
+ tools/control/build-web/**
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/Command.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandDestroy.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandHelp.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandList.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandNew.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandStart.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandStop.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/Defaults$Handler.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/Defaults.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/Domain.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/InetAddressPattern.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/Main.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/Settings.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/StringPattern.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/Extent.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/Library.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/Main.java.orig
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/Mode.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/Parser.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/Partition.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/PartitionManager.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/RootBean.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/SystemConfigurationBean.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/VirtualBlockDevice.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/VirtualDisk.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/VirtualDiskManager.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/XML.class
+ tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/XMLHelper.class
+ tools/control/build-xen/WEB-INF/web.xml
+ tools/control/build-xen/about.jsp
+ tools/control/build-xen/dom-del.jsp
+ tools/control/build-xen/dom-delr.jsp
+ tools/control/build-xen/dom-lis.jsp
+ tools/control/build-xen/dom-new.jsp
+ tools/control/build-xen/dom-newr.jsp
+ tools/control/build-xen/dom-sta.jsp
+ tools/control/build-xen/dom-star.jsp
+ tools/control/build-xen/dom-stp.jsp
+ tools/control/build-xen/dom-stpr.jsp
+ tools/control/build-xen/dom.jsp
+ tools/control/build-xen/help.jsp
+ tools/control/build-xen/img/cambridge.gif
+ tools/control/build-xen/img/help.gif
+ tools/control/build-xen/img/home.gif
+ tools/control/build-xen/img/pixel.gif
+ tools/control/build-xen/img/search.gif
+ tools/control/build-xen/img/xeno.gif
+ tools/control/build-xen/index.jsp
+ tools/control/build-xen/newdom.jsp
+ tools/control/build-xen/tmpl/about.tmpl
+ tools/control/build-xen/tmpl/dom-del.tmpl
+ tools/control/build-xen/tmpl/dom-delr.tmpl
+ tools/control/build-xen/tmpl/dom-lis.tmpl
+ tools/control/build-xen/tmpl/dom-new.tmpl
+ tools/control/build-xen/tmpl/dom-newr.tmpl
+ tools/control/build-xen/tmpl/dom-sta.tmpl
+ tools/control/build-xen/tmpl/dom-star.tmpl
+ tools/control/build-xen/tmpl/dom-stp.tmpl
+ tools/control/build-xen/tmpl/dom-stpr.tmpl
+ tools/control/build-xen/tmpl/dom.tmpl
+ tools/control/build-xen/tmpl/dommenu.tmpl
+ tools/control/build-xen/tmpl/help.tmpl
+ tools/control/build-xen/tmpl/index.tmpl
+ tools/control/build-xen/tmpl/install.pl
+ tools/control/build-xen/tmpl/makefile
+ tools/control/build-xen/tmpl/newdom.tmpl
+ tools/control/build-xen/tmpl/vd-fv.tmpl
+ tools/control/build-xen/tmpl/vd-pa.tmpl
+ tools/control/build-xen/tmpl/vd-par.tmpl
+ tools/control/build-xen/tmpl/vd-pv.tmpl
+ tools/control/build-xen/tmpl/vd-vbdc.tmpl
+ tools/control/build-xen/tmpl/vd-vbdcr.tmpl
+ tools/control/build-xen/tmpl/vd-vbdd.tmpl
+ tools/control/build-xen/tmpl/vd-vbdf.tmpl
+ tools/control/build-xen/tmpl/vd-vbdfr.tmpl
+ tools/control/build-xen/tmpl/vd-vbdv.tmpl
+ tools/control/build-xen/tmpl/vd-vdc.tmpl
+ tools/control/build-xen/tmpl/vd-vdcr.tmpl
+ tools/control/build-xen/tmpl/vd-vdd.tmpl
+ tools/control/build-xen/tmpl/vd-vddr.tmpl
+ tools/control/build-xen/tmpl/vd-vdr.tmpl
+ tools/control/build-xen/tmpl/vd-vdrr.tmpl
+ tools/control/build-xen/tmpl/vd-vdv.tmpl
+ tools/control/build-xen/tmpl/vd.tmpl
+ tools/control/build-xen/tmpl/vdmenu.tmpl
+ tools/control/build-xen/tmpl/xenofoot.def
+ tools/control/build-xen/tmpl/xenohead.def
+ tools/control/build-xen/tmpl/xenostyle.css
+ tools/control/build-xen/vd-fv.jsp
+ tools/control/build-xen/vd-pa.jsp
+ tools/control/build-xen/vd-par.jsp
+ tools/control/build-xen/vd-pv.jsp
+ tools/control/build-xen/vd-vbdc.jsp
+ tools/control/build-xen/vd-vbdcr.jsp
+ tools/control/build-xen/vd-vbdd.jsp
+ tools/control/build-xen/vd-vbdf.jsp
+ tools/control/build-xen/vd-vbdfr.jsp
+ tools/control/build-xen/vd-vbdv.jsp
+ tools/control/build-xen/vd-vdc.jsp
+ tools/control/build-xen/vd-vdcr.jsp
+ tools/control/build-xen/vd-vdd.jsp
+ tools/control/build-xen/vd-vddr.jsp
+ tools/control/build-xen/vd-vdr.jsp
+ tools/control/build-xen/vd-vdrr.jsp
+ tools/control/build-xen/vd-vdv.jsp
+ tools/control/build-xen/vd.jsp
+ tools/control/build-xen/xenostyle.css
+ tools/control/dist-web/**
+ tools/control/dist/docs/api/allclasses-frame.html
+ tools/control/dist/docs/api/allclasses-noframe.html
+ tools/control/dist/docs/api/constant-values.html
+ tools/control/dist/docs/api/deprecated-list.html
+ tools/control/dist/docs/api/help-doc.html
+ tools/control/dist/docs/api/index-all.html
+ tools/control/dist/docs/api/index.html
+ tools/control/dist/docs/api/overview-frame.html
+ tools/control/dist/docs/api/overview-summary.html
+ tools/control/dist/docs/api/overview-tree.html
+ tools/control/dist/docs/api/package-list
+ tools/control/dist/docs/api/packages.html
+ tools/control/dist/docs/api/stylesheet.css
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/Command.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/CommandDestroy.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/CommandHelp.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/CommandList.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/CommandNew.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/CommandStart.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/CommandStop.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/Defaults.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/Domain.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/InetAddressPattern.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/Main.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/Settings.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/StringPattern.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/package-frame.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/package-summary.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/package-tree.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/Extent.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/Library.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/Mode.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/Parser.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/Partition.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/PartitionManager.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/RootBean.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/SystemConfigurationBean.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/VirtualBlockDevice.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/VirtualDisk.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/VirtualDiskManager.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/XML.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/XMLHelper.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/package-frame.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/package-summary.html
+ tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/package-tree.html
+ tools/control/dist/docs/empty_dir
+ tools/control/dist/xenctl-0.1-dev.war
+ tools/control/domctl.jar
+ tools/control/eclipsebin/**
+ tools/control/web/about.jsp
+ tools/control/web/dom-del.jsp
+ tools/control/web/dom-delr.jsp
+ tools/control/web/dom-lis.jsp
+ tools/control/web/dom-new.jsp
+ tools/control/web/dom-newr.jsp
+ tools/control/web/dom-sta.jsp
+ tools/control/web/dom-star.jsp
+ tools/control/web/dom-stp.jsp
+ tools/control/web/dom-stpr.jsp
+ tools/control/web/dom.jsp
+ tools/control/web/help.jsp
+ tools/control/web/index.jsp
+ tools/control/web/newdom.jsp
++tools/control/web/pd-g.jsp
++tools/control/web/pd-gr.jsp
++tools/control/web/pd-l.jsp
++tools/control/web/pd-r.jsp
++tools/control/web/pd-rr.jsp
++tools/control/web/pd.jsp
+ tools/control/web/vd-fv.jsp
+ tools/control/web/vd-pa.jsp
+ tools/control/web/vd-par.jsp
+ tools/control/web/vd-pv.jsp
+ tools/control/web/vd-vbdc.jsp
+ tools/control/web/vd-vbdcr.jsp
+ tools/control/web/vd-vbdd.jsp
+ tools/control/web/vd-vbdf.jsp
+ tools/control/web/vd-vbdfr.jsp
+ tools/control/web/vd-vbdv.jsp
+ tools/control/web/vd-vdc.jsp
+ tools/control/web/vd-vdcr.jsp
+ tools/control/web/vd-vdd.jsp
+ tools/control/web/vd-vddr.jsp
+ tools/control/web/vd-vdr.jsp
+ tools/control/web/vd-vdrr.jsp
+ tools/control/web/vd-vdv.jsp
+ tools/control/web/vd.jsp
+ tools/control/web/xenostyle.css
+ tools/control/xenctl-cmdline.jar
+ tools/domain_builder/dom_builder.o
+ tools/domain_builder/dom_kill.o
+ tools/domain_builder/domain_builder
+ tools/domain_builder/kill_domain
+ tools/domctl/build/uk/ac/cam/cl/xeno/domctl/Command.class
+ tools/domctl/build/uk/ac/cam/cl/xeno/domctl/CommandDestroy.class
+ tools/domctl/build/uk/ac/cam/cl/xeno/domctl/CommandHelp.class
+ tools/domctl/build/uk/ac/cam/cl/xeno/domctl/CommandNew.class
+ tools/domctl/build/uk/ac/cam/cl/xeno/domctl/CommandStart.class
+ tools/domctl/build/uk/ac/cam/cl/xeno/domctl/CommandStop.class
+ tools/domctl/build/uk/ac/cam/cl/xeno/domctl/Defaults$Handler.class
+ tools/domctl/build/uk/ac/cam/cl/xeno/domctl/Defaults.class
+ tools/domctl/build/uk/ac/cam/cl/xeno/domctl/InetAddressPattern.class
+ tools/domctl/build/uk/ac/cam/cl/xeno/domctl/Main.class
+ tools/domctl/build/uk/ac/cam/cl/xeno/domctl/Settings.class
+ tools/domctl/build/uk/ac/cam/cl/xeno/domctl/StringPattern.class
+ tools/domctl/domctl.jar
+ tools/internal/xi_build
+ tools/internal/xi_build.o
+ tools/internal/xi_create
+ tools/internal/xi_create.o
+ tools/internal/xi_destroy
+ tools/internal/xi_destroy.o
++tools/internal/xi_list
+ tools/internal/xi_phys_grant
+ tools/internal/xi_phys_grant.c~
+ tools/internal/xi_phys_grant.o
+ tools/internal/xi_phys_probe
+ tools/internal/xi_phys_probe.c~
+ tools/internal/xi_phys_probe.o
+ tools/internal/xi_phys_revoke
+ tools/internal/xi_phys_revoke.c~
+ tools/internal/xi_phys_revoke.o
++tools/internal/xi_restore_linux
++tools/internal/xi_save_linux
++tools/internal/xi_sched_domain
++tools/internal/xi_sched_global
+ tools/internal/xi_start
+ tools/internal/xi_start.o
+ tools/internal/xi_stop
+ tools/internal/xi_stop.o
++tools/internal/xi_usage
++tools/internal/xi_vbd_add
++tools/internal/xi_vbd_create
++tools/internal/xi_vbd_info
++tools/internal/xi_vbd_list
++tools/internal/xi_vif_params
+tools/misc/miniterm/miniterm
- xen/xen
- xen/xen.gz
- xen/xen.s
+tools/misc/xen_cpuperf
+tools/misc/xen_log
++tools/misc/xen_netwatch
++tools/misc/xen_read_console
++tools/misc/xen_refresh_dev
+ tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/Extent.class
+ tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/Library.class
+ tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/Main.class
+ tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/Mode.class
+ tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/Parser.class
+ tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/Partition.class
+ tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/PartitionManager.class
+ tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/VirtualBlockDevice.class
+ tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/VirtualDisk.class
+ tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/VirtualDiskManager.class
+ tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/XML.class
+ tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/XMLHelper.class
+ tools/vdmanager/vdmanager.jar
++tools/xc/lib/libxc.a
++tools/xc/lib/libxc.so
++tools/xc/lib/libxc.so.1.3
++tools/xc/lib/libxc.so.1.3.0
++tools/xc/lib/libxc_bvtsched.o
++tools/xc/lib/libxc_domain.o
++tools/xc/lib/libxc_linux_build.o
++tools/xc/lib/libxc_linux_restore.o
++tools/xc/lib/libxc_linux_save.o
++tools/xc/lib/libxc_misc.o
++tools/xc/lib/libxc_private.o
++tools/xc/lib/libxc_vbd.o
++tools/xc/lib/libxc_vif.o
++tools/xc/lib/xc_bvtsched.o
++tools/xc/lib/xc_domain.o
++tools/xc/lib/xc_evtchn.o
++tools/xc/lib/xc_linux_build.o
++tools/xc/lib/xc_linux_restore.o
++tools/xc/lib/xc_linux_save.o
++tools/xc/lib/xc_misc.o
++tools/xc/lib/xc_netbsd_build.o
++tools/xc/lib/xc_physdev.o
++tools/xc/lib/xc_private.o
++tools/xc/lib/xc_vbd.o
++tools/xc/lib/xc_vif.o
++tools/xc/py/XenoUtil.pyc
++tools/xc/py/build/lib.linux-i686-2.2/Xc.so
++tools/xc/py/build/lib/XenoUtil.py
++tools/xc/py/build/temp.linux-i686-2.2/Xc.o
++tools/xend/xend
++tools/xend/xend.o
++tools/xend/xend_utils.o
+tools/xentrace/xentrace
+ xen-2.4.16/common/domain.c.smh
+ xen-2.4.16/common/kernel.c.ok-ish
+ xen-2.4.16/common/kernel.c.old
+ xen-2.4.16/drivers/block/ll_rw_blk.c.orig
+ xen-2.4.16/drivers/ide/ide-disk.c.orig
+ xen-2.4.16/drivers/ide/ide-probe.c.orig
+ xen-2.4.16/drivers/ide/ide-taskfile.c.orig
+ xen-2.4.16/drivers/ide/ide.c.orig
+ xen-2.4.16/drivers/net/e1000/e1000.o
+ xen-2.4.16/drivers/net/e1000/e1000_ethtool.o
+ xen-2.4.16/drivers/net/e1000/e1000_hw.o
+ xen-2.4.16/drivers/net/e1000/e1000_main.o
+ xen-2.4.16/drivers/net/e1000/e1000_param.o
+ xen-2.4.16/foo
+ xen-2.4.16/include/hypervisor-ifs/block.h.orig
+ xen-2.4.16/include/xeno/blkdev.h.orig
+ xen-2.4.16/include/xeno/sched.h.orig
+ xen-2.4.16/size.image
++xen/BLOG
+ xen/arch/i386/acpitable.o
+ xen/arch/i386/apic.o
+ xen/arch/i386/arch.o
+ xen/arch/i386/boot/boot.o
+ xen/arch/i386/delay.o
+ xen/arch/i386/entry.o
+ xen/arch/i386/extable.o
++xen/arch/i386/flushtlb.o
+ xen/arch/i386/i387.o
+ xen/arch/i386/i8259.o
+ xen/arch/i386/idle0_task.o
+ xen/arch/i386/io_apic.o
+ xen/arch/i386/ioremap.o
+ xen/arch/i386/irq.o
+ xen/arch/i386/mm.o
+ xen/arch/i386/mpparse.o
++xen/arch/i386/nmi.o
+ xen/arch/i386/pci-dma.o
+ xen/arch/i386/pci-i386.o
+ xen/arch/i386/pci-irq.o
+ xen/arch/i386/pci-pc.o
++xen/arch/i386/pdb-stub.o
+ xen/arch/i386/process.o
+ xen/arch/i386/rwlock.o
+ xen/arch/i386/setup.o
+ xen/arch/i386/smp.o
+ xen/arch/i386/smpboot.o
+ xen/arch/i386/time.o
+ xen/arch/i386/trampoline.o
+ xen/arch/i386/traps.o
+ xen/arch/i386/usercopy.o
+ xen/common/ac_timer.o
+ xen/common/block.o
+ xen/common/brlock.o
+ xen/common/common.o
++xen/common/console.o
++xen/common/debug-linux.o
++xen/common/debug.c~
++xen/common/debug.o
+ xen/common/dom0_ops.o
+ xen/common/dom_mem_ops.o
+ xen/common/domain.o
+ xen/common/domain_page.o
+ xen/common/event.o
++xen/common/event_channel.o
+ xen/common/kernel.o
+ xen/common/keyhandler.o
+ xen/common/lib.o
+ xen/common/memory.o
+ xen/common/network.o
+ xen/common/page_alloc.o
+ xen/common/perfc.o
++xen/common/physdev.o
++xen/common/rbtree.o
+ xen/common/resource.o
+ xen/common/schedule.o
++xen/common/shadow.o
+ xen/common/slab.o
+ xen/common/softirq.o
+ xen/common/string.o
+ xen/common/timer.o
++xen/common/trace.o
+ xen/common/vsprintf.o
+ xen/drivers/block/blkpg.o
++xen/drivers/block/cciss.o
++xen/drivers/block/cciss_scsi.o
+ xen/drivers/block/driver.o
+ xen/drivers/block/elevator.o
+ xen/drivers/block/genhd.o
+ xen/drivers/block/ll_rw_blk.o
+ xen/drivers/block/xen_block.c~
+ xen/drivers/block/xen_block.o
+ xen/drivers/block/xen_physdisk.c~
+ xen/drivers/block/xen_physdisk.o
+ xen/drivers/block/xen_segment.o
++xen/drivers/block/xen_vbd.o
+ xen/drivers/cdrom/cdrom.o
+ xen/drivers/cdrom/driver.o
++xen/drivers/char/console.o
+ xen/drivers/char/driver.o
++xen/drivers/char/keyboard.o
++xen/drivers/char/serial.o
+ xen/drivers/char/xen_kbd.o
+ xen/drivers/char/xen_serial.o
+ xen/drivers/ide/driver.o
+ xen/drivers/ide/ide-cd.o
+ xen/drivers/ide/ide-disk.o
+ xen/drivers/ide/ide-dma.o
+ xen/drivers/ide/ide-features.o
+ xen/drivers/ide/ide-geometry.o
+ xen/drivers/ide/ide-pci.o
+ xen/drivers/ide/ide-probe.o
+ xen/drivers/ide/ide-taskfile.o
+ xen/drivers/ide/ide-xeno.o
+ xen/drivers/ide/ide.o
+ xen/drivers/ide/piix.o
++xen/drivers/message/fusion/driver.o
++xen/drivers/message/fusion/mptbase.o
++xen/drivers/message/fusion/mptscsih.o
+ xen/drivers/net/3c59x.o
+ xen/drivers/net/8139too.o
+ xen/drivers/net/Space.o
+ xen/drivers/net/driver.o
++xen/drivers/net/dummy.o
+ xen/drivers/net/e100/e100.o
+ xen/drivers/net/e100/e100_config.o
+ xen/drivers/net/e100/e100_eeprom.o
+ xen/drivers/net/e100/e100_main.o
+ xen/drivers/net/e100/e100_phy.o
+ xen/drivers/net/e100/e100_test.o
+ xen/drivers/net/e1000/e1000.o
+ xen/drivers/net/e1000/e1000_ethtool.o
+ xen/drivers/net/e1000/e1000_hw.o
+ xen/drivers/net/e1000/e1000_main.o
+ xen/drivers/net/e1000/e1000_param.o
++xen/drivers/net/e1000/kcompat.o
+ xen/drivers/net/ne/8390.o
+ xen/drivers/net/ne/ne.o
+ xen/drivers/net/ne/ne_drv.o
+ xen/drivers/net/net_init.o
+ xen/drivers/net/pcnet32.o
+ xen/drivers/net/setup.o
+ xen/drivers/net/tg3.o
+ xen/drivers/net/tulip/21142.o
+ xen/drivers/net/tulip/eeprom.o
+ xen/drivers/net/tulip/interrupt.o
+ xen/drivers/net/tulip/media.o
+ xen/drivers/net/tulip/pnic.o
+ xen/drivers/net/tulip/pnic2.o
+ xen/drivers/net/tulip/timer.o
+ xen/drivers/net/tulip/tulip.o
+ xen/drivers/net/tulip/tulip_core.o
+ xen/drivers/net/via-rhine.o
xen/drivers/pci/classlist.h
+ xen/drivers/pci/compat.o
xen/drivers/pci/devlist.h
+ xen/drivers/pci/driver.o
xen/drivers/pci/gen-devlist
+ xen/drivers/pci/names.o
+ xen/drivers/pci/pci.o
+ xen/drivers/pci/quirks.o
+ xen/drivers/pci/setup-res.o
++xen/drivers/scsi/BusLogic.o
+ xen/drivers/scsi/aacraid/aachba.o
+ xen/drivers/scsi/aacraid/aacraid.o
+ xen/drivers/scsi/aacraid/commctrl.o
+ xen/drivers/scsi/aacraid/comminit.o
+ xen/drivers/scsi/aacraid/commsup.o
+ xen/drivers/scsi/aacraid/dpcsup.o
+ xen/drivers/scsi/aacraid/linit.o
+ xen/drivers/scsi/aacraid/rx.o
+ xen/drivers/scsi/aacraid/sa.o
+ xen/drivers/scsi/aic7xxx/aic7770.o
+ xen/drivers/scsi/aic7xxx/aic7770_osm.o
++xen/drivers/scsi/aic7xxx/aic79xx_core.o
++xen/drivers/scsi/aic7xxx/aic79xx_osm.o
++xen/drivers/scsi/aic7xxx/aic79xx_osm_pci.o
++xen/drivers/scsi/aic7xxx/aic79xx_pci.o
++xen/drivers/scsi/aic7xxx/aic79xx_proc.o
+ xen/drivers/scsi/aic7xxx/aic7xxx.o
+ xen/drivers/scsi/aic7xxx/aic7xxx_93cx6.o
+ xen/drivers/scsi/aic7xxx/aic7xxx_core.o
+ xen/drivers/scsi/aic7xxx/aic7xxx_osm.o
+ xen/drivers/scsi/aic7xxx/aic7xxx_osm_pci.o
+ xen/drivers/scsi/aic7xxx/aic7xxx_pci.o
+ xen/drivers/scsi/aic7xxx/aic7xxx_proc.o
+ xen/drivers/scsi/constants.o
+ xen/drivers/scsi/driver.o
+ xen/drivers/scsi/hosts.o
+ xen/drivers/scsi/megaraid.o
+ xen/drivers/scsi/scsi.o
+ xen/drivers/scsi/scsi_dma.o
+ xen/drivers/scsi/scsi_error.o
+ xen/drivers/scsi/scsi_ioctl.o
+ xen/drivers/scsi/scsi_lib.o
+ xen/drivers/scsi/scsi_merge.o
++xen/drivers/scsi/scsi_obsolete.o
+ xen/drivers/scsi/scsi_proc.o
+ xen/drivers/scsi/scsi_queue.o
+ xen/drivers/scsi/scsi_scan.o
+ xen/drivers/scsi/scsi_syms.o
+ xen/drivers/scsi/scsicam.o
+ xen/drivers/scsi/sd.o
++xen/drivers/scsi/sym53c8xx_2/sym53c8xx.o
++xen/drivers/scsi/sym53c8xx_2/sym_fw.o
++xen/drivers/scsi/sym53c8xx_2/sym_glue.o
++xen/drivers/scsi/sym53c8xx_2/sym_hipd.o
++xen/drivers/scsi/sym53c8xx_2/sym_malloc.o
++xen/drivers/scsi/sym53c8xx_2/sym_misc.o
++xen/drivers/scsi/sym53c8xx_2/sym_nvram.o
+ xen/image
+ xen/image.dis
+ xen/image.gz
+ xen/image.s
xen/include/asm
+xen/include/hypervisor-ifs/arch
+ xen/include/hypervisor-ifs/hypervisor-ifs
+ xen/include/hypervisor-ifs/segment.h~
+ xen/include/linux
+xen/include/xen/compile.h
+ xen/include/xeno/compile.h
+ xen/include/xeno/physdisk.h~
+ xen/net/dev.o
+ xen/net/dev_mcast.o
+ xen/net/devinit.o
+ xen/net/eth.o
+ xen/net/network.o
+ xen/net/skbuff.o
xen/tools/elf-reloc
xen/tools/figlet/figlet
- TAGS
++xen/xen
++xen/xen.gz
++xen/xen.s
+ xenolinux-2.4.16-sparse/arch/xeno/drivers/block/Makefile.orig
+ xenolinux-2.4.16-sparse/arch/xeno/drivers/block/block.c.orig
+ xenolinux-2.4.16-sparse/scripts/kconfig.tk
+ xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_block.c~
+ xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_physdisk_proc.c.bak
+ xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_physdisk_proc.c~
+ xenolinux-2.4.21-sparse/include/linux/blk.h~
-tools/control/web/pd-g.jsp
-tools/control/web/pd-gr.jsp
-tools/control/web/pd-l.jsp
-tools/control/web/pd-r.jsp
-tools/control/web/pd-rr.jsp
-tools/control/web/pd.jsp
-tools/internal/xi_list
-tools/internal/xi_usage
-tools/internal/xi_sched_domain
-tools/internal/xi_sched_global
-xen/arch/i386/nmi.o
-xen/drivers/net/dummy.o
-tools/misc/miniterm/miniterm
-tools/misc/xen_read_console
-extras/mini-os/h/hypervisor-ifs
-xen/BLOG
-xen/drivers/block/xen_vbd.o
-tools/internal/xi_vif_params
-tools/misc/xen_cpuperf
-tools/misc/xen_log
-tools/misc/xen_refresh_dev
+ xenolinux-2.4.22-sparse/arch/xeno/drivers/block/device
-xen/common/debug.c~
-xen/common/debug.o
-tools/internal/xi_restore_linux
-tools/internal/xi_save_linux
-tools/internal/xi_vbd_add
-tools/internal/xi_vbd_create
-tools/internal/xi_vbd_info
-tools/internal/xi_vbd_list
-xen/drivers/scsi/BusLogic.o
-tools/misc/xen_netwatch
-xen/drivers/scsi/scsi_obsolete.o
-xen/xen
-xen/xen.gz
-tools/xc/lib/libxc.a
-tools/xc/lib/libxc.so
-tools/xc/lib/libxc_bvtsched.o
-tools/xc/lib/libxc_domain.o
-tools/xc/lib/libxc_linux_build.o
-tools/xc/lib/libxc_linux_restore.o
-tools/xc/lib/libxc_linux_save.o
-tools/xc/lib/libxc_misc.o
-tools/xc/lib/libxc_private.o
-tools/xc/lib/libxc_vbd.o
-tools/xc/lib/libxc_vif.o
-tools/xc/py/build/lib.linux-i686-2.2/Xc.so
-tools/xc/py/build/lib/XenoUtil.py
-tools/xc/py/build/temp.linux-i686-2.2/Xc.o
-xen/common/console.o
-xen/common/event_channel.o
-xen/drivers/scsi/aic7xxx/aic79xx_core.o
-xen/drivers/scsi/aic7xxx/aic79xx_osm.o
-xen/drivers/scsi/aic7xxx/aic79xx_osm_pci.o
-xen/drivers/scsi/aic7xxx/aic79xx_pci.o
-xen/drivers/scsi/aic7xxx/aic79xx_proc.o
-tools/xc/lib/xc_bvtsched.o
-tools/xc/lib/xc_domain.o
-tools/xc/lib/xc_linux_build.o
-tools/xc/lib/xc_linux_restore.o
-tools/xc/lib/xc_linux_save.o
-tools/xc/lib/xc_misc.o
-tools/xc/lib/xc_private.o
-tools/xc/lib/xc_vbd.o
-tools/xc/lib/xc_vif.o
-xen/xen.s
-xen/drivers/message/fusion/driver.o
-xen/drivers/message/fusion/mptbase.o
-xen/drivers/message/fusion/mptscsih.o
-xen/drivers/net/e1000/kcompat.o
-xen/drivers/scsi/sym53c8xx_2/sym53c8xx.o
-xen/drivers/scsi/sym53c8xx_2/sym_fw.o
-xen/drivers/scsi/sym53c8xx_2/sym_glue.o
-xen/drivers/scsi/sym53c8xx_2/sym_hipd.o
-xen/drivers/scsi/sym53c8xx_2/sym_malloc.o
-xen/drivers/scsi/sym53c8xx_2/sym_misc.o
-xen/drivers/scsi/sym53c8xx_2/sym_nvram.o
-xen/arch/i386/flushtlb.o
-xen/common/rbtree.o
-xen/drivers/block/cciss.o
-xen/drivers/block/cciss_scsi.o
-TAGS
-tools/xc/lib/xc_netbsd_build.o
-xen/arch/i386/pdb-stub.o
-xen/common/debug-linux.o
-xen/drivers/char/serial.o
-tools/xend/xend.o
-tools/xentrace/xentrace
-tools/xc/lib/xc_evtchn.o
-tools/xc/py/XenoUtil.pyc
-tools/xend/xend
-tools/xc/lib/libxc.so.1.3
-tools/xc/lib/libxc.so.1.3.0
-tools/xc/lib/xc_physdev.o
-tools/xend/xend_utils.o
-xen/common/physdev.o
-xen/common/shadow.o
-xen/common/trace.o
-xen/drivers/char/console.o
-xen/drivers/char/keyboard.o
-xen/include/hypervisor-ifs/arch
--- /dev/null
+/******************************************************************************
+ * domain_page.h
+ *
+ * Allow temporary mapping of domain pages. Based on ideas from the
+ * Linux PKMAP code -- the copyrights and credits are retained below.
+ */
+
+/*
+ * (C) 1999 Andrea Arcangeli, SuSE GmbH, andrea@suse.de
+ * Gerhard Wichert, Siemens AG, Gerhard.Wichert@pdb.siemens.de *
+ * Copyright (C) 1999 Ingo Molnar <mingo@redhat.com>
+ */
+
+#include <xen/config.h>
+#include <xen/sched.h>
+#include <xen/mm.h>
+#include <xen/perfc.h>
+#include <asm/domain_page.h>
+#include <asm/pgalloc.h>
+
+unsigned long *mapcache;
+static unsigned int map_idx, shadow_map_idx[NR_CPUS];
+static spinlock_t map_lock = SPIN_LOCK_UNLOCKED;
+
+/* Use a spare PTE bit to mark entries ready for recycling. */
+#define READY_FOR_TLB_FLUSH (1<<10)
+
+static void flush_all_ready_maps(void)
+{
+ unsigned long *cache = mapcache;
+
+ /* A bit skanky -- depends on having an aligned PAGE_SIZE set of PTEs. */
+ do { if ( (*cache & READY_FOR_TLB_FLUSH) ) *cache = 0; }
+ while ( ((unsigned long)(++cache) & ~PAGE_MASK) != 0 );
+
+ perfc_incrc(domain_page_tlb_flush);
+ local_flush_tlb();
+}
+
+
+void *map_domain_mem(unsigned long pa)
+{
+ unsigned long va;
+ unsigned int idx, cpu = smp_processor_id();
+ unsigned long *cache = mapcache;
+ unsigned long flags;
+
++ perfc_incrc(map_domain_mem_count);
++
+ spin_lock_irqsave(&map_lock, flags);
+
+ /* Has some other CPU caused a wrap? We must flush if so. */
+ if ( map_idx < shadow_map_idx[cpu] )
+ {
+ perfc_incrc(domain_page_tlb_flush);
+ local_flush_tlb();
+ }
+
+ for ( ; ; )
+ {
+ idx = map_idx = (map_idx + 1) & (MAPCACHE_ENTRIES - 1);
+ if ( idx == 0 ) flush_all_ready_maps();
+ if ( cache[idx] == 0 ) break;
+ }
+
+ cache[idx] = (pa & PAGE_MASK) | __PAGE_HYPERVISOR;
+
+ spin_unlock_irqrestore(&map_lock, flags);
+
+ shadow_map_idx[cpu] = idx;
+
+ va = MAPCACHE_VIRT_START + (idx << PAGE_SHIFT) + (pa & ~PAGE_MASK);
+ return (void *)va;
+}
+
+void unmap_domain_mem(void *va)
+{
+ unsigned int idx;
+ idx = ((unsigned long)va - MAPCACHE_VIRT_START) >> PAGE_SHIFT;
+ mapcache[idx] |= READY_FOR_TLB_FLUSH;
+}
#include <asm/i387.h>
#include <asm/mpspec.h>
#include <asm/ldt.h>
--
-#include <xeno/irq.h>
-#include <xeno/event.h>
-#include <xeno/shadow.h>
+#include <xen/irq.h>
+#include <xen/event.h>
++#include <xen/shadow.h>
int hlt_counter;
* Gareth Hughes <gareth@valinux.com>, May 2000
*/
-#include <xeno/config.h>
-#include <xeno/init.h>
-#include <xeno/interrupt.h>
-#include <xeno/sched.h>
-#include <xeno/lib.h>
-#include <xeno/errno.h>
-#include <xeno/mm.h>
+#include <xen/config.h>
+#include <xen/init.h>
+#include <xen/interrupt.h>
+#include <xen/sched.h>
+#include <xen/lib.h>
+#include <xen/errno.h>
+#include <xen/mm.h>
#include <asm/ptrace.h>
-#include <xeno/delay.h>
-#include <xeno/spinlock.h>
-#include <xeno/irq.h>
-#include <xeno/perfc.h>
-#include <xeno/shadow.h>
+#include <xen/delay.h>
+#include <xen/spinlock.h>
+#include <xen/irq.h>
+#include <xen/perfc.h>
++#include <xen/shadow.h>
#include <asm/domain_page.h>
#include <asm/system.h>
#include <asm/io.h>
-#include <xeno/config.h>
-#include <xeno/init.h>
-#include <xeno/lib.h>
-#include <xeno/errno.h>
-#include <xeno/sched.h>
-#include <xeno/mm.h>
-#include <xeno/skbuff.h>
-#include <xeno/interrupt.h>
-#include <xeno/delay.h>
-#include <xeno/event.h>
-#include <xeno/time.h>
-#include <xeno/shadow.h>
+#include <xen/config.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/errno.h>
+#include <xen/sched.h>
+#include <xen/mm.h>
+#include <xen/skbuff.h>
+#include <xen/interrupt.h>
+#include <xen/delay.h>
+#include <xen/event.h>
+#include <xen/time.h>
++#include <xen/shadow.h>
#include <hypervisor-ifs/dom0_ops.h>
#include <asm/io.h>
#include <asm/domain_page.h>
for ( ; ; ) ;
}
- frametable_pages = ((FRAMETABLE_VIRT_END - RDWR_MPT_VIRT_START)/sizeof(struct pfn_info));
+ max_page = (mbi->mem_upper+1024) >> (PAGE_SHIFT - 10);
- if ( frametable_pages < (1<<(32-PAGE_SHIFT)) )
+ /* The array of pfn_info structures must fit into the reserved area. */
- if ( (sizeof(struct pfn_info) * max_page) >
++ if ( (sizeof(struct pfn_info) * max_page) >
+ (FRAMETABLE_VIRT_END - FRAMETABLE_VIRT_START) )
{
- unsigned long new_max =
- printk("Not enough space to initialise frame table for a 4GB machine (%luMB only)\n", frametable_pages >> (20-PAGE_SHIFT));
++ unsigned long new_max =
+ (FRAMETABLE_VIRT_END - FRAMETABLE_VIRT_START) /
+ sizeof(struct pfn_info);
- printk("Truncating available memory to %lu/%luMB\n",
++ printk("Truncating available memory to %lu/%luMB\n",
+ new_max >> (20 - PAGE_SHIFT), max_page >> (20 - PAGE_SHIFT));
- max_page = new_max;
++ max_page = new_max;
}
set_current(&idle0_task);
- max_mem = max_page = (mbi->mem_upper+1024) >> (PAGE_SHIFT - 10);
-
- if ( max_page > frametable_pages )
- max_page = frametable_pages;
-
init_frametable(max_page);
- printk("Initialised all memory on a %luMB machine\n",
- max_page >> (20-PAGE_SHIFT));
+ printk("Initialised %luMB memory on a %luMB machine\n",
+ max_page >> (20-PAGE_SHIFT),
+ max_mem >> (20-PAGE_SHIFT) );
heap_start = memguard_init(&_end);
* to more aggressive flush types.
*/
-#include <xeno/config.h>
-#include <xeno/init.h>
-#include <xeno/lib.h>
-#include <xeno/mm.h>
-#include <xeno/sched.h>
-#include <xeno/errno.h>
-#include <xeno/perfc.h>
-#include <xeno/interrupt.h>
-#include <xeno/shadow.h>
+#include <xen/config.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/mm.h>
+#include <xen/sched.h>
+#include <xen/errno.h>
+#include <xen/perfc.h>
+#include <xen/interrupt.h>
++#include <xen/shadow.h>
#include <asm/page.h>
#include <asm/flushtlb.h>
#include <asm/io.h>
CHECK_STRICT);
if ( likely(okay) )
{
- put_page_and_type(&frame_table[pagetable_val(current->mm.pagetable)
- >> PAGE_SHIFT]);
- current->mm.pagetable = mk_pagetable(pfn << PAGE_SHIFT);
-
- if( unlikely(current->mm.shadow_mode))
- current->mm.shadow_table =
- shadow_mk_pagetable(current, pfn<<PAGE_SHIFT);
-
invalidate_shadow_ldt();
-
- // start using the new PT straight away
++
percpu_info[cpu].deferred_ops &= ~DOP_FLUSH_TLB;
- if ( unlikely(current->mm.shadow_mode) )
- {
- check_pagetable( current,
- current->mm.pagetable, "pre-stlb-flush" );
- write_cr3_counted(pagetable_val(current->mm.shadow_table));
+ old_base_pfn = pagetable_val(current->mm.pagetable) >> PAGE_SHIFT;
+ current->mm.pagetable = mk_pagetable(pfn << PAGE_SHIFT);
- write_cr3_counted(pfn << PAGE_SHIFT);
- put_page_and_type(&frame_table[old_base_pfn]);
++
++ if( unlikely(current->mm.shadow_mode))
++ {
++ current->mm.shadow_table =
++ shadow_mk_pagetable(current, pfn<<PAGE_SHIFT);
++ write_cr3_counted(pagetable_val(current->mm.shadow_table));
+ }
+ else
- write_cr3_counted(pagetable_val(current->mm.pagetable));
++ {
++ write_cr3_counted(pfn << PAGE_SHIFT);
++ }
++ put_page_and_type(&frame_table[old_base_pfn]);
}
else
{
#define PERFCOUNTER( var, name ) { name, TYPE_SINGLE, 0 },
#define PERFCOUNTER_CPU( var, name ) { name, TYPE_CPU, 0 },
#define PERFCOUNTER_ARRAY( var, name, size ) { name, TYPE_ARRAY, size },
+ #define PERFSTATUS( var, name ) { name, TYPE_S_SINGLE, 0 },
+ #define PERFSTATUS_CPU( var, name ) { name, TYPE_S_CPU, 0 },
+ #define PERFSTATUS_ARRAY( var, name, size ) { name, TYPE_S_ARRAY, size },
static struct {
char *name;
- enum { TYPE_SINGLE, TYPE_CPU, TYPE_ARRAY } type;
+ enum { TYPE_SINGLE, TYPE_CPU, TYPE_ARRAY,
+ TYPE_S_SINGLE, TYPE_S_CPU, TYPE_S_ARRAY
+ } type;
int nr_elements;
} perfc_info[] = {
-#include <xeno/perfc_defn.h>
+#include <xen/perfc_defn.h>
};
#define NR_PERFCTRS (sizeof(perfc_info) / sizeof(perfc_info[0]))
#include <asm/types.h>
#include <asm/cpufeature.h>
#include <asm/desc.h>
-#include <xeno/config.h>
-#include <xeno/spinlock.h>
+#include <xen/config.h>
++#include <xen/spinlock.h>
#include <hypervisor-ifs/hypervisor-if.h>
struct task_struct;
--- /dev/null
+
+#ifndef __XEN_MM_H__
+#define __XEN_MM_H__
+
+#include <xen/config.h>
+#include <xen/list.h>
+#include <xen/spinlock.h>
+#include <xen/perfc.h>
+#include <xen/sched.h>
+
+#include <asm/pgalloc.h>
+#include <asm/atomic.h>
+#include <asm/desc.h>
+#include <asm/flushtlb.h>
+#include <asm/io.h>
+
+#include <hypervisor-ifs/hypervisor-if.h>
+
+/*
+ * These are for compatibility with calls to the Linux memory allocators.
+ */
+
+#define __GFP_DMA 0x01
+#define GFP_DMA __GFP_DMA
+#define __GFP_WAIT 0x10 /* Can wait and reschedule? */
+#define __GFP_HIGH 0x20 /* Should access emergency pools? */
+#define __GFP_IO 0x40 /* Can start low memory physical IO? */
+#define __GFP_HIGHIO 0x80 /* Can start high mem physical IO? */
+#define __GFP_FS 0x100 /* Can call down to low-level FS? */
+#define GFP_ATOMIC (__GFP_HIGH)
+#define GFP_KERNEL (__GFP_HIGH | __GFP_WAIT | __GFP_IO | \
+ __GFP_HIGHIO | __GFP_FS)
+
+/*
+ * The following is for page_alloc.c.
+ */
+
+void init_page_allocator(unsigned long min, unsigned long max);
+unsigned long __get_free_pages(int mask, int order);
+void __free_pages(unsigned long p, int order);
+#define get_free_page(_m) (__get_free_pages((_m),0))
+#define __get_free_page(_m) (__get_free_pages((_m),0))
+#define free_pages(_p,_o) (__free_pages(_p,_o))
+#define free_page(_p) (__free_pages(_p,0))
+
+
+/*
+ * Per-page-frame information.
+ */
+
+struct pfn_info
+{
+ /* Each frame can be threaded onto a doubly-linked list. */
+ struct list_head list;
+ /* The following possible uses are context-dependent. */
+ union {
+ /* Page is in use and not a zombie: we keep a pointer to its owner. */
+ struct task_struct *domain;
+ /* Page is not currently allocated: mask of possibly-tainted TLBs. */
+ unsigned long cpu_mask;
+ /* Page is a zombie: this word currently has no use. */
+ unsigned long _unused;
+ } u;
+ /* Reference count and various PGC_xxx flags and fields. */
+ unsigned long count_and_flags;
+ /* Type reference count and various PGT_xxx flags and fields. */
+ unsigned long type_and_flags;
+ /* Timestamp from 'TLB clock', used to reduce need for safety flushes. */
+ unsigned long tlbflush_timestamp;
+};
+
+ /* The following page types are MUTUALLY EXCLUSIVE. */
+#define PGT_none (0<<29) /* no special uses of this page */
+#define PGT_l1_page_table (1<<29) /* using this page as an L1 page table? */
+#define PGT_l2_page_table (2<<29) /* using this page as an L2 page table? */
+#define PGT_l3_page_table (3<<29) /* using this page as an L3 page table? */
+#define PGT_l4_page_table (4<<29) /* using this page as an L4 page table? */
+#define PGT_gdt_page (5<<29) /* using this page in a GDT? */
+#define PGT_ldt_page (6<<29) /* using this page in an LDT? */
+#define PGT_writeable_page (7<<29) /* has writable mappings of this page? */
+#define PGT_type_mask (7<<29) /* Bits 29-31. */
+ /* Has this page been validated for use as its current type? */
+#define _PGT_validated 28
+#define PGT_validated (1<<_PGT_validated)
+ /* 28-bit count of uses of this frame as its current type. */
+#define PGT_count_mask ((1<<28)-1)
+
+ /* The owner of this page is dead: 'u.domain' is no longer valid. */
+#define _PGC_zombie 31
+#define PGC_zombie (1<<_PGC_zombie)
+ /* For safety, force a TLB flush when this page's type changes. */
+#define _PGC_tlb_flush_on_type_change 30
+#define PGC_tlb_flush_on_type_change (1<<_PGC_tlb_flush_on_type_change)
+ /* Owning guest has pinned this page to its current type? */
+#define _PGC_guest_pinned 29
+#define PGC_guest_pinned (1<<_PGC_guest_pinned)
+ /* Cleared when the owning guest 'frees' this page. */
+#define _PGC_allocated 28
+#define PGC_allocated (1<<_PGC_allocated)
+ /* 28-bit count of references to this frame. */
+#define PGC_count_mask ((1<<28)-1)
+
++
+/* We trust the slab allocator in slab.c, and our use of it. */
+#define PageSlab(page) (1)
+#define PageSetSlab(page) ((void)0)
+#define PageClearSlab(page) ((void)0)
+
+#define IS_XEN_HEAP_FRAME(_pfn) (page_to_phys(_pfn) < MAX_MONITOR_ADDRESS)
+
+#define SHARE_PFN_WITH_DOMAIN(_pfn, _dom) \
+ do { \
+ (_pfn)->u.domain = (_dom); \
+ wmb(); /* install valid domain ptr before updating refcnt. */ \
+ (_pfn)->count_and_flags = 1; /* Xen holds a writeable reference */ \
+ (_pfn)->type_and_flags = PGT_writeable_page | PGT_validated | 1; \
+ } while ( 0 )
+
+#define UNSHARE_PFN(_pfn) put_page_and_type(_pfn)
+
+extern struct pfn_info *frame_table;
+extern unsigned long frame_table_size;
+extern struct list_head free_list;
+extern spinlock_t free_list_lock;
+extern unsigned int free_pfns;
+extern unsigned long max_page;
+void init_frametable(unsigned long nr_pages);
+
+struct pfn_info *alloc_domain_page(struct task_struct *p);
+void free_domain_page(struct pfn_info *page);
+
+int alloc_page_type(struct pfn_info *page, unsigned int type);
+void free_page_type(struct pfn_info *page, unsigned int type);
+
+static inline void put_page(struct pfn_info *page)
+{
+ unsigned long nx, x, y = page->count_and_flags;
+
+ do {
+ x = y;
+ nx = x - 1;
+ }
+ while ( unlikely((y = cmpxchg(&page->count_and_flags, x, nx)) != x) );
+
+ if ( unlikely((nx & PGC_count_mask) == 0) )
+ free_domain_page(page);
+}
+
+
+static inline int get_page(struct pfn_info *page,
+ struct task_struct *domain)
+{
+ unsigned long x, nx, y = page->count_and_flags;
+ struct task_struct *p, *np = page->u.domain;
+
+ do {
+ x = y;
+ nx = x + 1;
+ p = np;
+ if ( unlikely((x & PGC_count_mask) == 0) || /* Not allocated? */
+ unlikely((nx & PGC_count_mask) == 0) || /* Count overflow? */
+ unlikely(x & PGC_zombie) || /* Zombie? */
+ unlikely(p != domain) ) /* Wrong owner? */
+ {
+ DPRINTK("Error pfn %08lx: ed=%p,sd=%p,caf=%08lx\n",
+ page_to_pfn(page), domain, p, x);
+ return 0;
+ }
+ __asm__ __volatile__(
+ LOCK_PREFIX "cmpxchg8b %3"
+ : "=a" (np), "=d" (y), "=b" (p),
+ "=m" (*(volatile unsigned long long *)(&page->u.domain))
+ : "0" (p), "1" (x), "b" (p), "c" (nx) );
+ }
+ while ( unlikely(np != p) || unlikely(y != x) );
+
+ return 1;
+}
+
+
+static inline void put_page_type(struct pfn_info *page)
+{
+ unsigned long nx, x, y = page->type_and_flags;
+
+ again:
+ do {
+ x = y;
+ nx = x - 1;
+ if ( unlikely((nx & PGT_count_mask) == 0) )
+ {
+ page->tlbflush_timestamp = tlbflush_clock;
+ if ( unlikely((nx & PGT_type_mask) <= PGT_l4_page_table) &&
+ likely(nx & PGT_validated) )
+ {
+ /*
+ * Page-table pages must be unvalidated when count is zero. The
+ * 'free' is safe because the refcnt is non-zero and the
+ * validated bit is clear => other ops will spin or fail.
+ */
+ if ( unlikely((y = cmpxchg(&page->type_and_flags, x,
+ x & ~PGT_validated)) != x) )
+ goto again;
+ /* We cleared the 'valid bit' so we must do the clear up. */
+ free_page_type(page, x & PGT_type_mask);
+ /* Carry on as we were, but with the 'valid bit' now clear. */
+ x &= ~PGT_validated;
+ nx &= ~PGT_validated;
+ }
+ }
+ }
+ while ( unlikely((y = cmpxchg(&page->type_and_flags, x, nx)) != x) );
+}
+
+
+static inline int get_page_type(struct pfn_info *page, unsigned long type)
+{
+ unsigned long nx, x, y = page->type_and_flags;
+ again:
+ do {
+ x = y;
+ nx = x + 1;
+ if ( unlikely((nx & PGT_count_mask) == 0) )
+ {
+ DPRINTK("Type count overflow on pfn %08lx\n", page_to_pfn(page));
+ return 0;
+ }
+ else if ( unlikely((x & PGT_count_mask) == 0) )
+ {
+ if ( (x & PGT_type_mask) != type )
+ {
+ nx &= ~(PGT_type_mask | PGT_validated);
+ nx |= type;
+ /* No extra validation needed for writeable pages. */
+ if ( type == PGT_writeable_page )
+ nx |= PGT_validated;
+ }
+ }
+ else if ( unlikely((x & PGT_type_mask) != type) )
+ {
+ DPRINTK("Unexpected type (saw %08lx != exp %08lx) for pfn %08lx\n",
+ x & PGT_type_mask, type, page_to_pfn(page));
+ return 0;
+ }
+ else if ( unlikely(!(x & PGT_validated)) )
+ {
+ /* Someone else is updating validation of this page. Wait... */
+ while ( (y = page->type_and_flags) != x )
+ {
+ rep_nop();
+ barrier();
+ }
+ goto again;
+ }
+ }
+ while ( unlikely((y = cmpxchg(&page->type_and_flags, x, nx)) != x) );
+
+ if ( unlikely(!(nx & PGT_validated)) )
+ {
+ /* Try to validate page type; drop the new reference on failure. */
+ if ( unlikely(!alloc_page_type(page, type)) )
+ {
+ DPRINTK("Error while validating pfn %08lx for type %08lx\n",
+ page_to_pfn(page), type);
+ put_page_type(page);
+ return 0;
+ }
+ set_bit(_PGT_validated, &page->type_and_flags);
+ }
+
+ return 1;
+}
+
+
+static inline void put_page_and_type(struct pfn_info *page)
+{
+ put_page_type(page);
+ put_page(page);
+}
+
+
+static inline int get_page_and_type(struct pfn_info *page,
+ struct task_struct *domain,
+ unsigned int type)
+{
+ int rc = get_page(page, domain);
+
+ if ( likely(rc) && unlikely(!get_page_type(page, type)) )
+ {
+ put_page(page);
+ rc = 0;
+ }
+
+ return rc;
+}
+
+#define ASSERT_PAGE_IS_TYPE(_p, _t) \
+ ASSERT(((_p)->type_and_flags & PGT_type_mask) == (_t)); \
+ ASSERT(((_p)->type_and_flags & PGT_count_mask) != 0)
+#define ASSERT_PAGE_IS_DOMAIN(_p, _d) \
+ ASSERT(((_p)->count_and_flags & PGC_count_mask) != 0); \
+ ASSERT((_p)->u.domain == (_d))
+
+int check_descriptor(unsigned long a, unsigned long b);
+
+/*
+ * The MPT (machine->physical mapping table) is an array of word-sized
+ * values, indexed on machine frame number. It is expected that guest OSes
+ * will use it to store a "physical" frame number to give the appearance of
+ * contiguous (or near contiguous) physical memory.
+ */
+#undef machine_to_phys_mapping
+#define machine_to_phys_mapping ((unsigned long *)RDWR_MPT_VIRT_START)
+
+/* Part of the domain API. */
+int do_mmu_update(mmu_update_t *updates, int count);
+
+#define DEFAULT_GDT_ENTRIES ((LAST_RESERVED_GDT_ENTRY*8)+7)
+#define DEFAULT_GDT_ADDRESS ((unsigned long)gdt_table)
+
+#ifdef MEMORY_GUARD
+void *memguard_init(void *heap_start);
+void memguard_guard_range(void *p, unsigned long l);
+void memguard_unguard_range(void *p, unsigned long l);
+int memguard_is_guarded(void *p);
+#else
+#define memguard_init(_s) (_s)
+#define memguard_guard_range(_p,_l) ((void)0)
+#define memguard_unguard_range(_p,_l) ((void)0)
+#define memguard_is_guarded(_p) (0)
+#endif
+
+#endif /* __XEN_MM_H__ */
--- /dev/null
+
+#ifndef __XEN_PERFC_H__
+#define __XEN_PERFC_H__
+
+#include <asm/atomic.h>
+
+/*
+ * NOTE: new counters must be defined in perfc_defn.h
+ *
+ * PERFCOUNTER (counter, string) define a new performance counter
+ * PERFCOUNTER_CPU (counter, string, size) define a counter per CPU
+ * PERFCOUNTER_ARRY (counter, string, size) define an array of counters
+ *
++ * unlike "COUNTERS", "STATUS" variables DO NOT RESET
++ * PERFSTATUS (counter, string) define a new performance stauts
++ * PERFSTATUS_CPU (counter, string, size) define a status var per CPU
++ * PERFSTATUS_ARRY (counter, string, size) define an array of status vars
++ *
+ * unsigned long perfc_value (counter) get value of a counter
+ * unsigned long perfc_valuec (counter) get value of a per CPU counter
+ * unsigned long perfc_valuea (counter, index) get value of an array counter
+ * unsigned long perfc_set (counter, val) set value of a counter
+ * unsigned long perfc_setc (counter, val) set value of a per CPU counter
+ * unsigned long perfc_seta (counter, index, val) set value of an array counter
+ * void perfc_incr (counter) increment a counter
+ * void perfc_incrc (counter, index) increment a per CPU counter
+ * void perfc_incra (counter, index) increment an array counter
+ * void perfc_add (counter, value) add a value to a counter
+ * void perfc_addc (counter, value) add a value to a per CPU counter
+ * void perfc_adda (counter, index, value) add a value to array counter
+ * void perfc_print (counter) print out the counter
+ */
+
+#define PERFCOUNTER( var, name ) \
+ atomic_t var[1];
+#define PERFCOUNTER_CPU( var, name ) \
+ atomic_t var[NR_CPUS];
+#define PERFCOUNTER_ARRAY( var, name, size ) \
+ atomic_t var[size];
++#define PERFSTATUS( var, name ) \
++ atomic_t var[1];
++#define PERFSTATUS_CPU( var, name ) \
++ atomic_t var[NR_CPUS];
++#define PERFSTATUS_ARRAY( var, name, size ) \
++ atomic_t var[size];
+
+struct perfcounter_t
+{
+#include <xen/perfc_defn.h>
+};
+
+extern struct perfcounter_t perfcounters;
+
+#define perfc_value(x) atomic_read(&perfcounters.x[0])
+#define perfc_valuec(x) atomic_read(&perfcounters.x[smp_processor_id()])
+#define perfc_valuea(x,y) atomic_read(&perfcounters.x[y])
+#define perfc_set(x,v) atomic_set(&perfcounters.x[0], v)
+#define perfc_setc(x,v) atomic_set(&perfcounters.x[smp_processor_id()], v)
+#define perfc_seta(x,y,v) atomic_set(&perfcounters.x[y], v)
+#define perfc_incr(x) atomic_inc(&perfcounters.x[0])
++#define perfc_decr(x) atomic_dec(&perfcounters.x[0])
+#define perfc_incrc(x) atomic_inc(&perfcounters.x[smp_processor_id()])
+#define perfc_incra(x,y) atomic_inc(&perfcounters.x[y])
+#define perfc_add(x,y) atomic_add((y), &perfcounters.x[0])
+#define perfc_addc(x,y) atomic_add((y), &perfcounters.x[smp_processor_id()])
+#define perfc_adda(x,y,z) atomic_add((z), &perfcounters.x[y])
+
+#endif /* __XEN_PERFC_H__ */
--- /dev/null
-
-
-
+
+PERFCOUNTER_CPU( irqs, "#interrupts" )
+PERFCOUNTER_CPU( irq_time, "cycles spent in irq handler" )
+
+PERFCOUNTER_CPU( apic_timer, "apic timer interrupts" )
+PERFCOUNTER_CPU( ac_timer_max, "ac_timer max error (ns)" )
+PERFCOUNTER_CPU( sched_irq, "sched: timer" )
+PERFCOUNTER_CPU( sched_run, "sched: runs through scheduler" )
+PERFCOUNTER_CPU( sched_ctx, "sched: context switches" )
+
+PERFCOUNTER( net_hypercalls, "network hypercalls" )
+PERFCOUNTER( net_rx_congestion_drop, "net rx congestion drops" )
+PERFCOUNTER( net_rx_capacity_drop, "net rx capacity drops" )
+PERFCOUNTER( net_rx_delivered, "net rx delivered" )
+PERFCOUNTER( net_tx_transmitted, "net tx transmitted" )
+
+PERFCOUNTER_CPU( domain_page_tlb_flush, "domain page tlb flushes" )
+PERFCOUNTER_CPU( need_flush_tlb_flush, "PG_need_flush tlb flushes" )
+
+PERFCOUNTER_CPU( calls_to_mmu_update, "calls_to_mmu_update" )
+PERFCOUNTER_CPU( num_page_updates, "num_page_updates" )
++PERFCOUNTER_CPU( calls_to_update_va, "calls_to_update_va_map" )
++PERFCOUNTER_CPU( page_faults, "page faults" )
++PERFCOUNTER_CPU( copy_user_faults, "copy_user faults" )
++PERFCOUNTER_CPU( map_domain_mem_count, "map_domain_mem count" )
++
++PERFCOUNTER_CPU( shadow_l2_table_count, "shadow_l2_table count" )
++PERFCOUNTER_CPU( shadow_l1_table_count, "shadow_l1_table count" )
++PERFCOUNTER_CPU( unshadow_table_count, "unshadow_table count" )
++PERFCOUNTER_CPU( shadow_fixup_count, "shadow_fixup count" )
++PERFCOUNTER_CPU( shadow_update_va_fail, "shadow_update_va_fail" )
++
++/* STATUS counters do not reset when 'P' is hit */
++PERFSTATUS( shadow_l2_pages, "current # shadow L2 pages" )
++PERFSTATUS( shadow_l1_pages, "current # shadow L1 pages" )
#include <asm/uaccess.h>
#include <asm/system.h>
#include <asm/bitops.h>
-#include <xeno/config.h>
-#include <xeno/delay.h>
-#include <xeno/lib.h>
-#include <xeno/types.h>
-#include <xeno/sched.h>
-#include <xeno/mm.h>
-#include <xeno/socket.h>
-#include <xeno/sockios.h>
-#include <xeno/errno.h>
-#include <xeno/interrupt.h>
-#include <xeno/if_ether.h>
-#include <xeno/netdevice.h>
-#include <xeno/etherdevice.h>
-#include <xeno/skbuff.h>
-#include <xeno/brlock.h>
-#include <xeno/init.h>
-#include <xeno/module.h>
-#include <xeno/event.h>
-#include <xeno/shadow.h>
+#include <xen/config.h>
+#include <xen/delay.h>
+#include <xen/lib.h>
+#include <xen/types.h>
+#include <xen/sched.h>
+#include <xen/mm.h>
+#include <xen/socket.h>
+#include <xen/sockios.h>
+#include <xen/errno.h>
+#include <xen/interrupt.h>
+#include <xen/if_ether.h>
+#include <xen/netdevice.h>
+#include <xen/etherdevice.h>
+#include <xen/skbuff.h>
+#include <xen/brlock.h>
+#include <xen/init.h>
+#include <xen/module.h>
+#include <xen/event.h>
++#include <xen/shadow.h>
#include <asm/domain_page.h>
#include <asm/pgalloc.h>
#include <asm/io.h>